Compiling functional pipe/stream abstractions into conventional programs: Software Pipelines

نویسنده

  • Richard Fateman
چکیده

Representing a potentially infinite indexed collection of data is a handy abstraction in a number of programming situations. Computational scientists routinely try to finess this notion by allocating an array of some “large enough” size, and (in a perhaps delicate move) re-allocate if it is not large enough. Even if one is aware of some direct implementation of infinite stream/pipe programming one might still dismiss it as one of those tricks promoted primarily by programming language theorists using Lisp or other oddball languages. In fact, the manipulation programs we discuss are most conveniently expressed in a functional representation, and are given in ANSI Common Lisp, but we use them to generate programs in C. Thus the stream/pipe abstraction may be used, in principle, even by those for whom all “real” programs must be written in some efficiently compiled language like C (or with minor changes, Fortran, etc.) The program applications include power series, sparse floating-point arithmetic, solution of ODEs.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Change-Resilient Design and Dataflow Optimization for Distributed XML Stream Processors

We propose a new stream-processing framework based on a virtual assembly line (val) model. We instantiate the val framework obtaining ∆-XML, an approach for designing and optimizing distributed XML processing pipelines. val/∆-XML greatly simplifies the design of change-resilient dataflow pipelines: XML processors (called actors) can be inserted, deleted, and their “scope of work” (the parts of ...

متن کامل

Compiling Data Dependent Control Flow on SIMD GPUs

Current Graphic Processing Units (GPUs) (circa. 2003/2004) have programmable vertex and fragment units. Often these units are implemented as SIMD processors employing parallel pipelines. Data dependent conditional execution on SIMD architectures implemented using processor idling is inefficient. I propose a multi-pass approach based on conditional streams which allows dynamic load balancing of ...

متن کامل

Stream Processing Hardware from Functional Language Specifications

We describe work-in-progress which aims at compiling suitably restricted functional programs with lazy lists directly into hardware. This extends previous work on SAFL which demonstrated that functional languages are effective at describing “fire-and-wait-for-result” programs, but for which stream-like I/O was awkward or impossible. Other frameworks (e.g. Lava) have used functional languages as...

متن کامل

Parallelizing XML data-streaming workflows via MapReduce

In prior work it has been shown that the design of scientific workflows can benefit from a collection-oriented modeling paradigm which views scientific workflows as pipelines of XML stream processors. In this paper, we present approaches for exploiting data parallelism in XML processing pipelines through novel compilation strategies to the Map-Reduce framework. Pipelines in our approach consist...

متن کامل

Scheduling and Optimizing Stream Programs on Multicore Machines by Exploiting High-Level Abstractions

Scheduling and Optimizing Stream Programs on Multicore Machines by Exploiting High-Level Abstractions by Dai Nguyen Bui Doctor of Philosophy in Engineering Electrical Engineering & Computer Sciences University of California, Berkeley Professor Edward A. Lee, Chair Real-time streaming of HD movies and TV via YouTube, Netflix, Apple TV and Xbox Live is gaining popularity. Stream programs often co...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2000